#ifndef NEWPARAMETERS_HH
#define NEWPARAMETERS_HH

#include <Qt/QtXml>
#include <QMap>
#include "Vector3.h"
#include <QString>
#include <QList>
#include <QFile>

class NewParameters 
{
protected:
  QMap<QString,double> time;
  QMap<QString,double> current;
  QMap<QString,double> field;
  QMap<QString,double> currentPulse;
  QMap<QString,double> fieldPulse;
  QMap<QString,double> doublePulse;
  QMap<QString,double> torque;
  QMap<QString,double> polarization;
  typedef QMap<QString,double> Layer;
  QMap<QString,double> layer;
  QVector<Layer> sample;
  QMap<QString,int> layerInt;
  int currentPulseNumber;  
  int fieldPulseNumber;
  QString currentPulseType;
  QString fieldPulseType;

  double temperature;
  int nrun;
  QString polarizationType;

public:
  NewParameters();

  virtual ~NewParameters();

  void getParameters(QString fileName);
  void saveParameters(QString fileName);

  double getTimeWindow();
  int getNrun();
  double getMs(int layer);
  double getK(int layer);
  Vector3 getMag(int layer);
  void setMs(int layer);
  void setK(int layer);
  void setMag(int layer);
  QMap<QString,double> getTime();
  QMap<QString,double> getField();
  QMap<QString,double> getCurrent();
  QMap<QString,double> getFieldPulse();
  QMap<QString,double> getCurrentPulse();
  QMap<QString,double> getDoublePulse(); 
  QString getCurrentPulseType();
  QString getFieldPulseType();
  QVector<Layer> getSample();
  double getTemperature();
  QMap<QString,double> getPolarization();
  QString getPolarizationType();
  QMap<QString,double> getTorque();
  void setSample(QVector<Layer> value);
  void setCurrent(QMap<QString,double> value);
  void setField(QMap<QString,double> value);
  void setTime(QMap<QString,double> value);
  void setTemperature(double value);
  void setTorque(QMap<QString,double> value);
  void setNbRun(int value);
  void setCurrentPulse(QMap<QString,double> value);
  void setDoublePulse(QMap<QString,double> value);
  void setCurrentPulseType(QString value);
  void setPolarizationType(QString value);
  void setPolarization(QMap<QString,double> value);
};

#endif
